<?php
namespace Admin\Model;
use Think\Model;

class ManagerModel extends Model{
	//制作数据，存储数据
	public function saveAuth($roleid,$authid){
		$authids=implode(',',$authid);//变成字符串
		//控制器和操作方法连接的字符串
		//根据选中的id信息，查询对应的权限记录
		$authinfo=M("Auth")->select($authids);
		//遍历其中控制器和方法
		$s="";
		foreach($authinfo as $k=>$v){
			if(!empty($v['auth_c']))
			$s.=$v['auth_c']."-".$v['auth_a'].",";
		}
		$s = rtrim($s,",");
		$sql = "update kl_role set role_auth_ids='{$authids}',role_auth_ac='{$s}'where role_id='{$roleid}'";
		// dump($sql);exit;
		return $this->execute($sql);

	}
	    //实现path和level的制作，并完善信息记录的全部字段写入数据表
    function saveData($four){
        //1) 根据已有的4个字段生成一个新记录
        $newid = $this -> add($four);
        //2) 根据新记录信息制作path和level
        //A.制作path
        if($four['auth_pid']==0){//① 顶级权限：全路径 = 新记录id值
            $path = $newid;
        }else{//② 非顶级权限： 全路径 = 父级全路径-本身id值
            $pinfo = $this -> find($four['auth_pid']); //获得父级权限信息
            $p_path = $pinfo['auth_path'];  //父级全路径
            $path = $p_path."-".$newid;
        }
        //B.制作level
        //规则：等级 =  全路径里边"-"中横线的个数
        $level = substr_count($path,'-'); //计算字符串中出现多少个子字符串
        //把path和level更新到新记录里边
        $sql = "update kl_auth set auth_path='$path',auth_level='$level' where auth_id='$newid'";
        return $this -> execute($sql);
    }

}